package nl.zoidberg.calculon.engine;

/**
 * All in the name of performance... lots and lots of magic numbers.
 * 
 */
public class Bitmaps {

	public static final short BM_U 	= 0;
	public static final short BM_UR	= 1;
	public static final short BM_R 	= 2;
	public static final short BM_DR	= 3;
	public static final short BM_D 	= 4;
	public static final short BM_DL	= 5;
	public static final short BM_L 	= 6;
	public static final short BM_UL	= 7;
	
	public static final long[][] maps = new long[8][64];

	public static final long[] crossMap = new long[64];
	public static final long[] diagMap = new long[64];
	public static final long[] starMap = new long[64];
	
	static {
		maps[BM_UL][0] = 0L;
		maps[BM_DL][0] = 0L;
		maps[BM_U][0] = 72340172838076672L;
		maps[BM_UR][0] = -9205322385119247872L;
		maps[BM_R][0] = 254L;
		maps[BM_L][0] = 0L;
		maps[BM_D][0] = 0L;
		maps[BM_DR][0] = 0L;
		maps[BM_UL][1] = 0L;
		maps[BM_DL][1] = 0L;
		maps[BM_U][1] = 72340172838076416L;
		maps[BM_UR][1] = 4620710844295151616L;
		maps[BM_R][1] = 65024L;
		maps[BM_L][1] = 0L;
		maps[BM_D][1] = 1L;
		maps[BM_DR][1] = 2L;
		maps[BM_UL][2] = 0L;
		maps[BM_DL][2] = 0L;
		maps[BM_U][2] = 72340172838010880L;
		maps[BM_UR][2] = 2310355422147510272L;
		maps[BM_R][2] = 16646144L;
		maps[BM_L][2] = 0L;
		maps[BM_D][2] = 257L;
		maps[BM_DR][2] = 516L;
		maps[BM_UL][3] = 0L;
		maps[BM_DL][3] = 0L;
		maps[BM_U][3] = 72340172821233664L;
		maps[BM_UR][3] = 1155177711056977920L;
		maps[BM_R][3] = 4261412864L;
		maps[BM_L][3] = 0L;
		maps[BM_D][3] = 65793L;
		maps[BM_DR][3] = 132104L;
		maps[BM_UL][4] = 0L;
		maps[BM_DL][4] = 0L;
		maps[BM_U][4] = 72340168526266368L;
		maps[BM_UR][4] = 577588851233521664L;
		maps[BM_R][4] = 1090921693184L;
		maps[BM_L][4] = 0L;
		maps[BM_D][4] = 16843009L;
		maps[BM_DR][4] = 33818640L;
		maps[BM_UL][5] = 0L;
		maps[BM_DL][5] = 0L;
		maps[BM_U][5] = 72339069014638592L;
		maps[BM_UR][5] = 288793326105133056L;
		maps[BM_R][5] = 279275953455104L;
		maps[BM_L][5] = 0L;
		maps[BM_D][5] = 4311810305L;
		maps[BM_DR][5] = 8657571872L;
		maps[BM_UL][6] = 0L;
		maps[BM_DL][6] = 0L;
		maps[BM_U][6] = 72057594037927936L;
		maps[BM_UR][6] = 144115188075855872L;
		maps[BM_R][6] = 71494644084506624L;
		maps[BM_L][6] = 0L;
		maps[BM_D][6] = 1103823438081L;
		maps[BM_DR][6] = 2216338399296L;
		maps[BM_UL][7] = 0L;
		maps[BM_DL][7] = 0L;
		maps[BM_U][7] = 0L;
		maps[BM_UR][7] = 0L;
		maps[BM_R][7] = -144115188075855872L;
		maps[BM_L][7] = 0L;
		maps[BM_D][7] = 282578800148737L;
		maps[BM_DR][7] = 567382630219904L;
		maps[BM_UL][8] = 256L;
		maps[BM_DL][8] = 0L;
		maps[BM_U][8] = 144680345676153344L;
		maps[BM_UR][8] = 36099303471055872L;
		maps[BM_R][8] = 252L;
		maps[BM_L][8] = 1L;
		maps[BM_D][8] = 0L;
		maps[BM_DR][8] = 0L;
		maps[BM_UL][9] = 65536L;
		maps[BM_DL][9] = 1L;
		maps[BM_U][9] = 144680345676152832L;
		maps[BM_UR][9] = -9205322385119248384L;
		maps[BM_R][9] = 64512L;
		maps[BM_L][9] = 256L;
		maps[BM_D][9] = 2L;
		maps[BM_DR][9] = 4L;
		maps[BM_UL][10] = 16777216L;
		maps[BM_DL][10] = 256L;
		maps[BM_U][10] = 144680345676021760L;
		maps[BM_UR][10] = 4620710844295020544L;
		maps[BM_R][10] = 16515072L;
		maps[BM_L][10] = 65536L;
		maps[BM_D][10] = 514L;
		maps[BM_DR][10] = 1032L;
		maps[BM_UL][11] = 4294967296L;
		maps[BM_DL][11] = 65536L;
		maps[BM_U][11] = 144680345642467328L;
		maps[BM_UR][11] = 2310355422113955840L;
		maps[BM_R][11] = 4227858432L;
		maps[BM_L][11] = 16777216L;
		maps[BM_D][11] = 131586L;
		maps[BM_DR][11] = 264208L;
		maps[BM_UL][12] = 1099511627776L;
		maps[BM_DL][12] = 16777216L;
		maps[BM_U][12] = 144680337052532736L;
		maps[BM_UR][12] = 1155177702467043328L;
		maps[BM_R][12] = 1082331758592L;
		maps[BM_L][12] = 4294967296L;
		maps[BM_D][12] = 33686018L;
		maps[BM_DR][12] = 67637280L;
		maps[BM_UL][13] = 281474976710656L;
		maps[BM_DL][13] = 4294967296L;
		maps[BM_U][13] = 144678138029277184L;
		maps[BM_UR][13] = 577586652210266112L;
		maps[BM_R][13] = 277076930199552L;
		maps[BM_L][13] = 1099511627776L;
		maps[BM_D][13] = 8623620610L;
		maps[BM_DR][13] = 17315143744L;
		maps[BM_UL][14] = 72057594037927936L;
		maps[BM_DL][14] = 1099511627776L;
		maps[BM_U][14] = 144115188075855872L;
		maps[BM_UR][14] = 288230376151711744L;
		maps[BM_R][14] = 70931694131085312L;
		maps[BM_L][14] = 281474976710656L;
		maps[BM_D][14] = 2207646876162L;
		maps[BM_DR][14] = 4432676798592L;
		maps[BM_UL][15] = 0L;
		maps[BM_DL][15] = 281474976710656L;
		maps[BM_U][15] = 0L;
		maps[BM_UR][15] = 0L;
		maps[BM_R][15] = -288230376151711744L;
		maps[BM_L][15] = 72057594037927936L;
		maps[BM_D][15] = 565157600297474L;
		maps[BM_DR][15] = 1134765260439552L;
		maps[BM_UL][16] = 66048L;
		maps[BM_DL][16] = 0L;
		maps[BM_U][16] = 289360691352306688L;
		maps[BM_UR][16] = 141012904183808L;
		maps[BM_R][16] = 248L;
		maps[BM_L][16] = 3L;
		maps[BM_D][16] = 0L;
		maps[BM_DR][16] = 0L;
		maps[BM_UL][17] = 16908288L;
		maps[BM_DL][17] = 2L;
		maps[BM_U][17] = 289360691352305664L;
		maps[BM_UR][17] = 36099303471054848L;
		maps[BM_R][17] = 63488L;
		maps[BM_L][17] = 768L;
		maps[BM_D][17] = 4L;
		maps[BM_DR][17] = 8L;
		maps[BM_UL][18] = 4328521728L;
		maps[BM_DL][18] = 513L;
		maps[BM_U][18] = 289360691352043520L;
		maps[BM_UR][18] = -9205322385119510528L;
		maps[BM_R][18] = 16252928L;
		maps[BM_L][18] = 196608L;
		maps[BM_D][18] = 1028L;
		maps[BM_DR][18] = 2064L;
		maps[BM_UL][19] = 1108101562368L;
		maps[BM_DL][19] = 131328L;
		maps[BM_U][19] = 289360691284934656L;
		maps[BM_UR][19] = 4620710844227911680L;
		maps[BM_R][19] = 4160749568L;
		maps[BM_L][19] = 50331648L;
		maps[BM_D][19] = 263172L;
		maps[BM_DR][19] = 528416L;
		maps[BM_UL][20] = 283673999966208L;
		maps[BM_DL][20] = 33619968L;
		maps[BM_U][20] = 289360674105065472L;
		maps[BM_UR][20] = 2310355404934086656L;
		maps[BM_R][20] = 1065151889408L;
		maps[BM_L][20] = 12884901888L;
		maps[BM_D][20] = 67372036L;
		maps[BM_DR][20] = 135274560L;
		maps[BM_UL][21] = 72620543991349248L;
		maps[BM_DL][21] = 8606711808L;
		maps[BM_U][21] = 289356276058554368L;
		maps[BM_UR][21] = 1155173304420532224L;
		maps[BM_R][21] = 272678883688448L;
		maps[BM_L][21] = 3298534883328L;
		maps[BM_D][21] = 17247241220L;
		maps[BM_DR][21] = 34630287488L;
		maps[BM_UL][22] = 144115188075855872L;
		maps[BM_DL][22] = 2203318222848L;
		maps[BM_U][22] = 288230376151711744L;
		maps[BM_UR][22] = 576460752303423488L;
		maps[BM_R][22] = 69805794224242688L;
		maps[BM_L][22] = 844424930131968L;
		maps[BM_D][22] = 4415293752324L;
		maps[BM_DR][22] = 8865353596928L;
		maps[BM_UL][23] = 0L;
		maps[BM_DL][23] = 564049465049088L;
		maps[BM_U][23] = 0L;
		maps[BM_UR][23] = 0L;
		maps[BM_R][23] = -576460752303423488L;
		maps[BM_L][23] = 216172782113783808L;
		maps[BM_D][23] = 1130315200594948L;
		maps[BM_DR][23] = 2269530520813568L;
		maps[BM_UL][24] = 16909312L;
		maps[BM_DL][24] = 0L;
		maps[BM_U][24] = 578721382704613376L;
		maps[BM_UR][24] = 550831656960L;
		maps[BM_R][24] = 240L;
		maps[BM_L][24] = 7L;
		maps[BM_D][24] = 0L;
		maps[BM_DR][24] = 0L;
		maps[BM_UL][25] = 4328783872L;
		maps[BM_DL][25] = 4L;
		maps[BM_U][25] = 578721382704611328L;
		maps[BM_UR][25] = 141012904181760L;
		maps[BM_R][25] = 61440L;
		maps[BM_L][25] = 1792L;
		maps[BM_D][25] = 8L;
		maps[BM_DR][25] = 16L;
		maps[BM_UL][26] = 1108168671232L;
		maps[BM_DL][26] = 1026L;
		maps[BM_U][26] = 578721382704087040L;
		maps[BM_UR][26] = 36099303470530560L;
		maps[BM_R][26] = 15728640L;
		maps[BM_L][26] = 458752L;
		maps[BM_D][26] = 2056L;
		maps[BM_DR][26] = 4128L;
		maps[BM_UL][27] = 283691179835392L;
		maps[BM_DL][27] = 262657L;
		maps[BM_U][27] = 578721382569869312L;
		maps[BM_UR][27] = -9205322385253728256L;
		maps[BM_R][27] = 4026531840L;
		maps[BM_L][27] = 117440512L;
		maps[BM_D][27] = 526344L;
		maps[BM_DR][27] = 1056832L;
		maps[BM_UL][28] = 72624942037860352L;
		maps[BM_DL][28] = 67240192L;
		maps[BM_U][28] = 578721348210130944L;
		maps[BM_UR][28] = 4620710809868173312L;
		maps[BM_R][28] = 1030792151040L;
		maps[BM_L][28] = 30064771072L;
		maps[BM_D][28] = 134744072L;
		maps[BM_DR][28] = 270549120L;
		maps[BM_UL][29] = 145241087982698496L;
		maps[BM_DL][29] = 17213489152L;
		maps[BM_U][29] = 578712552117108736L;
		maps[BM_UR][29] = 2310346608841064448L;
		maps[BM_R][29] = 263882790666240L;
		maps[BM_L][29] = 7696581394432L;
		maps[BM_D][29] = 34494482440L;
		maps[BM_DR][29] = 69260574720L;
		maps[BM_UL][30] = 288230376151711744L;
		maps[BM_DL][30] = 4406653222912L;
		maps[BM_U][30] = 576460752303423488L;
		maps[BM_UR][30] = 1152921504606846976L;
		maps[BM_R][30] = 67553994410557440L;
		maps[BM_L][30] = 1970324836974592L;
		maps[BM_D][30] = 8830587504648L;
		maps[BM_DR][30] = 17730707128320L;
		maps[BM_UL][31] = 0L;
		maps[BM_DL][31] = 1128103225065472L;
		maps[BM_U][31] = 0L;
		maps[BM_UR][31] = 0L;
		maps[BM_R][31] = -1152921504606846976L;
		maps[BM_L][31] = 504403158265495552L;
		maps[BM_D][31] = 2260630401189896L;
		maps[BM_DR][31] = 4539061024849920L;
		maps[BM_UL][32] = 4328785920L;
		maps[BM_DL][32] = 0L;
		maps[BM_U][32] = 1157442765409226752L;
		maps[BM_UR][32] = 2151686144L;
		maps[BM_R][32] = 224L;
		maps[BM_L][32] = 15L;
		maps[BM_D][32] = 0L;
		maps[BM_DR][32] = 0L;
		maps[BM_UL][33] = 1108169195520L;
		maps[BM_DL][33] = 8L;
		maps[BM_U][33] = 1157442765409222656L;
		maps[BM_UR][33] = 550831652864L;
		maps[BM_R][33] = 57344L;
		maps[BM_L][33] = 3840L;
		maps[BM_D][33] = 16L;
		maps[BM_DR][33] = 32L;
		maps[BM_UL][34] = 283691314053120L;
		maps[BM_DL][34] = 2052L;
		maps[BM_U][34] = 1157442765408174080L;
		maps[BM_UR][34] = 141012903133184L;
		maps[BM_R][34] = 14680064L;
		maps[BM_L][34] = 983040L;
		maps[BM_D][34] = 4112L;
		maps[BM_DR][34] = 8256L;
		maps[BM_UL][35] = 72624976397598720L;
		maps[BM_DL][35] = 525314L;
		maps[BM_U][35] = 1157442765139738624L;
		maps[BM_UR][35] = 36099303202095104L;
		maps[BM_R][35] = 3758096384L;
		maps[BM_L][35] = 251658240L;
		maps[BM_D][35] = 1052688L;
		maps[BM_DR][35] = 2113664L;
		maps[BM_UL][36] = 145249884075720704L;
		maps[BM_DL][36] = 134480385L;
		maps[BM_U][36] = 1157442696420261888L;
		maps[BM_UR][36] = -9205322453973204992L;
		maps[BM_R][36] = 962072674304L;
		maps[BM_L][36] = 64424509440L;
		maps[BM_D][36] = 269488144L;
		maps[BM_DR][36] = 541097984L;
		maps[BM_UL][37] = 290482175965396992L;
		maps[BM_DL][37] = 34426978560L;
		maps[BM_U][37] = 1157425104234217472L;
		maps[BM_UR][37] = 4620693217682128896L;
		maps[BM_R][37] = 246290604621824L;
		maps[BM_L][37] = 16492674416640L;
		maps[BM_D][37] = 68988964880L;
		maps[BM_DR][37] = 138521083904L;
		maps[BM_UL][38] = 576460752303423488L;
		maps[BM_DL][38] = 8813306511360L;
		maps[BM_U][38] = 1152921504606846976L;
		maps[BM_UR][38] = 2305843009213693952L;
		maps[BM_R][38] = 63050394783186944L;
		maps[BM_L][38] = 4222124650659840L;
		maps[BM_D][38] = 17661175009296L;
		maps[BM_DR][38] = 35461397479424L;
		maps[BM_UL][39] = 0L;
		maps[BM_DL][39] = 2256206466908160L;
		maps[BM_U][39] = 0L;
		maps[BM_UR][39] = 0L;
		maps[BM_R][39] = -2305843009213693952L;
		maps[BM_L][39] = 1080863910568919040L;
		maps[BM_D][39] = 4521260802379792L;
		maps[BM_DR][39] = 9078117754732544L;
		maps[BM_UL][40] = 1108169199616L;
		maps[BM_DL][40] = 0L;
		maps[BM_U][40] = 2314885530818453504L;
		maps[BM_UR][40] = 8404992L;
		maps[BM_R][40] = 192L;
		maps[BM_L][40] = 31L;
		maps[BM_D][40] = 0L;
		maps[BM_DR][40] = 0L;
		maps[BM_UL][41] = 283691315101696L;
		maps[BM_DL][41] = 16L;
		maps[BM_U][41] = 2314885530818445312L;
		maps[BM_UR][41] = 2151677952L;
		maps[BM_R][41] = 49152L;
		maps[BM_L][41] = 7936L;
		maps[BM_D][41] = 32L;
		maps[BM_DR][41] = 64L;
		maps[BM_UL][42] = 72624976666034176L;
		maps[BM_DL][42] = 4104L;
		maps[BM_U][42] = 2314885530816348160L;
		maps[BM_UR][42] = 550829555712L;
		maps[BM_R][42] = 12582912L;
		maps[BM_L][42] = 2031616L;
		maps[BM_D][42] = 8224L;
		maps[BM_DR][42] = 16512L;
		maps[BM_UL][43] = 145249952795197440L;
		maps[BM_DL][43] = 1050628L;
		maps[BM_U][43] = 2314885530279477248L;
		maps[BM_UR][43] = 141012366262272L;
		maps[BM_R][43] = 3221225472L;
		maps[BM_L][43] = 520093696L;
		maps[BM_D][43] = 2105376L;
		maps[BM_DR][43] = 4227072L;
		maps[BM_UL][44] = 290499768151441408L;
		maps[BM_DL][44] = 268960770L;
		maps[BM_U][44] = 2314885392840523776L;
		maps[BM_UR][44] = 36099165763141632L;
		maps[BM_R][44] = 824633720832L;
		maps[BM_L][44] = 133143986176L;
		maps[BM_D][44] = 538976288L;
		maps[BM_DR][44] = 1082130432L;
		maps[BM_UL][45] = 580964351930793984L;
		maps[BM_DL][45] = 68853957121L;
		maps[BM_U][45] = 2314850208468434944L;
		maps[BM_UR][45] = -9205357638345293824L;
		maps[BM_R][45] = 211106232532992L;
		maps[BM_L][45] = 34084860461056L;
		maps[BM_D][45] = 137977929760L;
		maps[BM_DR][45] = 277025390592L;
		maps[BM_UL][46] = 1152921504606846976L;
		maps[BM_DL][46] = 17626613022976L;
		maps[BM_U][46] = 2305843009213693952L;
		maps[BM_UR][46] = 4611686018427387904L;
		maps[BM_R][46] = 54043195528445952L;
		maps[BM_L][46] = 8725724278030336L;
		maps[BM_D][46] = 35322350018592L;
		maps[BM_DR][46] = 70918499991552L;
		maps[BM_UL][47] = 0L;
		maps[BM_DL][47] = 4512412933881856L;
		maps[BM_U][47] = 0L;
		maps[BM_UR][47] = 0L;
		maps[BM_R][47] = -4611686018427387904L;
		maps[BM_L][47] = 2233785415175766016L;
		maps[BM_D][47] = 9042521604759584L;
		maps[BM_DR][47] = 18155135997837312L;
		maps[BM_UL][48] = 283691315109888L;
		maps[BM_DL][48] = 0L;
		maps[BM_U][48] = 4629771061636907008L;
		maps[BM_UR][48] = 32768L;
		maps[BM_R][48] = 128L;
		maps[BM_L][48] = 63L;
		maps[BM_D][48] = 0L;
		maps[BM_DR][48] = 0L;
		maps[BM_UL][49] = 72624976668131328L;
		maps[BM_DL][49] = 32L;
		maps[BM_U][49] = 4629771061636890624L;
		maps[BM_UR][49] = 8388608L;
		maps[BM_R][49] = 32768L;
		maps[BM_L][49] = 16128L;
		maps[BM_D][49] = 64L;
		maps[BM_DR][49] = 128L;
		maps[BM_UL][50] = 145249953332068352L;
		maps[BM_DL][50] = 8208L;
		maps[BM_U][50] = 4629771061632696320L;
		maps[BM_UR][50] = 2147483648L;
		maps[BM_R][50] = 8388608L;
		maps[BM_L][50] = 4128768L;
		maps[BM_D][50] = 16448L;
		maps[BM_DR][50] = 32768L;
		maps[BM_UL][51] = 290499905590394880L;
		maps[BM_DL][51] = 2101256L;
		maps[BM_U][51] = 4629771060558954496L;
		maps[BM_UR][51] = 549755813888L;
		maps[BM_R][51] = 2147483648L;
		maps[BM_L][51] = 1056964608L;
		maps[BM_D][51] = 4210752L;
		maps[BM_DR][51] = 8388608L;
		maps[BM_UL][52] = 580999536302882816L;
		maps[BM_DL][52] = 537921540L;
		maps[BM_U][52] = 4629770785681047552L;
		maps[BM_UR][52] = 140737488355328L;
		maps[BM_R][52] = 549755813888L;
		maps[BM_L][52] = 270582939648L;
		maps[BM_D][52] = 1077952576L;
		maps[BM_DR][52] = 2147483648L;
		maps[BM_UL][53] = 1161928703861587968L;
		maps[BM_DL][53] = 137707914242L;
		maps[BM_U][53] = 4629700416936869888L;
		maps[BM_UR][53] = 36028797018963968L;
		maps[BM_R][53] = 140737488355328L;
		maps[BM_L][53] = 69269232549888L;
		maps[BM_D][53] = 275955859520L;
		maps[BM_DR][53] = 549755813888L;
		maps[BM_UL][54] = 2305843009213693952L;
		maps[BM_DL][54] = 35253226045953L;
		maps[BM_U][54] = 4611686018427387904L;
		maps[BM_UR][54] = -9223372036854775808L;
		maps[BM_R][54] = 36028797018963968L;
		maps[BM_L][54] = 17732923532771328L;
		maps[BM_D][54] = 70644700037184L;
		maps[BM_DR][54] = 140737488355328L;
		maps[BM_UL][55] = 0L;
		maps[BM_DL][55] = 9024825867763968L;
		maps[BM_U][55] = 0L;
		maps[BM_UR][55] = 0L;
		maps[BM_R][55] = -9223372036854775808L;
		maps[BM_L][55] = 4539628424389459968L;
		maps[BM_D][55] = 18085043209519168L;
		maps[BM_DR][55] = 36028797018963968L;
		maps[BM_UL][56] = 72624976668147712L;
		maps[BM_DL][56] = 0L;
		maps[BM_U][56] = -9187201950435737600L;
		maps[BM_UR][56] = 0L;
		maps[BM_R][56] = 0L;
		maps[BM_L][56] = 127L;
		maps[BM_D][56] = 0L;
		maps[BM_DR][56] = 0L;
		maps[BM_UL][57] = 145249953336262656L;
		maps[BM_DL][57] = 64L;
		maps[BM_U][57] = -9187201950435770368L;
		maps[BM_UR][57] = 0L;
		maps[BM_R][57] = 0L;
		maps[BM_L][57] = 32512L;
		maps[BM_D][57] = 128L;
		maps[BM_DR][57] = 0L;
		maps[BM_UL][58] = 290499906664136704L;
		maps[BM_DL][58] = 16416L;
		maps[BM_U][58] = -9187201950444158976L;
		maps[BM_UR][58] = 0L;
		maps[BM_R][58] = 0L;
		maps[BM_L][58] = 8323072L;
		maps[BM_D][58] = 32896L;
		maps[BM_DR][58] = 0L;
		maps[BM_UL][59] = 580999811180789760L;
		maps[BM_DL][59] = 4202512L;
		maps[BM_U][59] = -9187201952591642624L;
		maps[BM_UR][59] = 0L;
		maps[BM_R][59] = 0L;
		maps[BM_L][59] = 2130706432L;
		maps[BM_D][59] = 8421504L;
		maps[BM_DR][59] = 0L;
		maps[BM_UL][60] = 1161999072605765632L;
		maps[BM_DL][60] = 1075843080L;
		maps[BM_U][60] = -9187202502347456512L;
		maps[BM_UR][60] = 0L;
		maps[BM_R][60] = 0L;
		maps[BM_L][60] = 545460846592L;
		maps[BM_D][60] = 2155905152L;
		maps[BM_DR][60] = 0L;
		maps[BM_UL][61] = 2323857407723175936L;
		maps[BM_DL][61] = 275415828484L;
		maps[BM_U][61] = -9187343239835811840L;
		maps[BM_UR][61] = 0L;
		maps[BM_R][61] = 0L;
		maps[BM_L][61] = 139637976727552L;
		maps[BM_D][61] = 551911719040L;
		maps[BM_DR][61] = 0L;
		maps[BM_UL][62] = 4611686018427387904L;
		maps[BM_DL][62] = 70506452091906L;
		maps[BM_U][62] = -9223372036854775808L;
		maps[BM_UR][62] = 0L;
		maps[BM_R][62] = 0L;
		maps[BM_L][62] = 35747322042253312L;
		maps[BM_D][62] = 141289400074368L;
		maps[BM_DR][62] = 0L;
		maps[BM_UL][63] = 0L;
		maps[BM_DL][63] = 18049651735527937L;
		maps[BM_U][63] = 0L;
		maps[BM_UR][63] = 0L;
		maps[BM_R][63] = 0L;
		maps[BM_L][63] = 9151314442816847872L;
		maps[BM_D][63] = 36170086419038336L;
		maps[BM_DR][63] = 0L;
		
		for(int i = 0; i < 64; i++) {
			crossMap[i] = (maps[BM_U][i] | maps[BM_D][i] | maps[BM_L][i] | maps[BM_R][i]);
			diagMap[i] = (maps[BM_UR][i] | maps[BM_DR][i] | maps[BM_UL][i] | maps[BM_DL][i]);
			starMap[i] = (crossMap[i] | diagMap[i]);
		}
	}
}
